Home

Home

df_day = pd.read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/web-data/data/cases_country.csv")
data = pd.read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/web-data/data/cases_time.csv")
df_geo = pd.read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/web-data/data/cases_country.csv")
data = data[['Country_Region', 'Last_Update', 'Confirmed', 'Deaths', 'Recovered', 'Active']]
data['Last_Update'] =  pd.to_datetime(data['Last_Update']).dt.date
data.dtypes
Country_Region     object
Last_Update        object
Confirmed           int64
Deaths              int64
Recovered         float64
Active            float64
dtype: object
df_day = df_day[['Country_Region', 'Last_Update', 'Confirmed', 'Deaths', 'Recovered', 'Active']]
df_day.dtypes
Country_Region    object
Last_Update       object
Confirmed          int64
Deaths             int64
Recovered          int64
Active             int64
dtype: object
df_day['Last_Update'] =  pd.to_datetime(df_day['Last_Update']).dt.date
df_day.head()
Country_Region Last_Update Confirmed Deaths Recovered Active
0 Australia 2020-04-04 5550 30 701 4819
1 Austria 2020-04-04 11781 186 2507 9088
2 Canada 2020-04-04 12978 218 2577 0
3 China 2020-04-04 82543 3330 76946 2267
4 Denmark 2020-04-04 4269 161 1379 2729
df = pd.concat([data, df_day])
df
Country_Region Last_Update Confirmed Deaths Recovered Active
0 Afghanistan 2020-01-22 0 0 NaN NaN
1 Afghanistan 2020-01-23 0 0 NaN NaN
2 Afghanistan 2020-01-24 0 0 NaN NaN
3 Afghanistan 2020-01-25 0 0 NaN NaN
4 Afghanistan 2020-01-26 0 0 NaN NaN
... ... ... ... ... ... ...
176 Venezuela 2020-04-04 155 7 52.0 96.0
177 Vietnam 2020-04-04 240 0 90.0 150.0
178 West Bank and Gaza 2020-04-04 217 1 21.0 195.0
179 Zambia 2020-04-04 39 1 2.0 36.0
180 Zimbabwe 2020-04-04 9 1 0.0 8.0

13394 rows × 6 columns

df_geo = df_geo[['Country_Region', 'Lat', 'Long_']]
df_all = df.merge(df_geo, on='Country_Region', how='left')
df_all.head()
Country_Region Last_Update Confirmed Deaths Recovered Active Lat Long_
0 Afghanistan 2020-01-22 0 0 NaN NaN 33.93911 67.709953
1 Afghanistan 2020-01-23 0 0 NaN NaN 33.93911 67.709953
2 Afghanistan 2020-01-24 0 0 NaN NaN 33.93911 67.709953
3 Afghanistan 2020-01-25 0 0 NaN NaN 33.93911 67.709953
4 Afghanistan 2020-01-26 0 0 NaN NaN 33.93911 67.709953
import plotly.express as px
df_data = df_all.groupby(['Last_Update', 'Country_Region'])['Confirmed', 'Deaths'].max().reset_index()
df_data["Last_Update"] = pd.to_datetime( df_data["Last_Update"]).dt.strftime('%m/%d/%Y')

fig = px.scatter_geo(df_data, locations="Country_Region", locationmode='country names', 
                     color=np.power(df_data["Confirmed"],0.3)-2 , size= np.power(df_data["Confirmed"]+1,0.3)-1, hover_name="Country_Region",
                     hover_data=["Confirmed"],
                     range_color= [0, max(np.power(df_data["Confirmed"],0.3))], 
                     projection="natural earth", animation_frame="Last_Update", 
                     color_continuous_scale=px.colors.sequential.Plasma,
                     title='COVID-19: Progression of spread'
                    )
fig.update_coloraxes(colorscale="hot")
fig.update(layout_coloraxis_showscale=False)
fig.show()
C:\Users\nisantil\AppData\Local\Continuum\anaconda3\lib\site-packages\ipykernel_launcher.py:2: FutureWarning:

Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.

import cufflinks as cf
from IPython.display import HTML
HTML(fig.to_html())